A portion of the disclosure of this patent document contains material that is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure, as it appears in the Patent and Trademark Office patent files or records, but otherwise reserves all copyright rights whatsoever. The following notice shall apply to this document: Copyright(copyright) 1999, Microsoft, Inc.
The present invention pertains generally to computer-implemented databases, and more particularly to techniques for adaptively distributing the execution of queries in a database system.
Online analytical processing (OLAP) is a key part of most data warehouse and business analysis systems. OLAP services provide for fast analysis of multidimensional information. For this purpose, OLAP services provide for multidimensional access and navigation of data in an intuitive and natural way, providing a global view of data that can be drilled down into particular data of interest. Speed and response time are important attributes of OLAP services that allow users to browse and analyze data online in an efficient manner. Furthermore, OLAP services typically provide analytical tools to rank, aggregate, and calculate lead and lag indicators for the data under analysis.
OLAP services are conventionally provided using a client-server model. An OLAP server is a high-capacity, multi-user data manipulation engine specifically designed to support and operate on multi-dimensional data structures. An OLAP client interfaces with the OLAP server, thereby providing OLAP services to external application programs. For example, an OLAP client may provide OLAP services to a variety of external application such as a data mining application, a data warehousing application, a data analysis application, a reporting application etc.
In conventional systems, certain tasks are handled by a database client while others are handled by a database server. An example of a client-side task is the presentation of data to the external application. An example of a server-side task is the data retrieval from data storage. In conventional database systems, the responsibility of executing a particular task is pre-assigned for execution by either the client or the server. Often, the majority of the tasks are assigned to the server such that the client machines are under-utilized. Thus, there is a need in the art for flexible, yet powerful technique for balancing the execution of queries between the database server and the database client. There is a need in the art for a technique that dynamically determines where queries should be executed.
The above-mentioned shortcomings, disadvantages and problems are addressed by the present invention, which will be understood by reading and studying the following specification. Systems, clients, servers, methods, and computer-readable media of varying scope are described in which, an adaptive method is applied in order to determine whether a particular request should execute on the client-side or the server-side of a client-server database system. In determining where a particular request should be executed, the method analyzes the size of the data sets involved and the data flow generated by the data sets. More specifically, the method first determines whether a particular request is a reasonable candidate for execution on the remote server. In making this decision the method determines whether the request result in large data sets, whether the user explicitly requested that the query be executed on the remote server, and whether the data set already exists on the client. In addition, the method examines the data flow and whether the request reduces the size of the data set. Finally, the method determines whether the particular request is an exception that falls within a class of requests that cannot be executed remotely, such as if the request requires a user-defined function that only exists on the client.
The present invention describes systems, clients, servers, methods, and computer-readable media of varying scope. In addition to the aspects and advantages of the present invention described in this summary, further aspects and advantages of the invention will become apparent by reference to the drawings and by reading the detailed description that follows.